// 公共样式


// 配置基地址
axios.defaults.baseURL = 'https://hmajax.itheima.net';

function showToast(msg) {
  // 把提示结构获取过来
  const myToast = document.querySelector('.my-toast')
  // 实例化
  const dialog = new bootstrap.Toast(myToast)
  // 修改实例内容
  document.querySelector('.toast-body').innerHTML = msg
  // 显示轻提示
  dialog.show()
}
// 页面访问控制(页面授权)
function checkLogin() {
  // 判断用户是否有权限提交
  const token = localStorage.getItem('token')
  if (!token) {
    setTimeout(() => {
      location.href = 'login.html'
    }, 1500)
  }
}
// 渲染用户名
function renderUser(){
  // 从本地获取用户名
  const user = localStorage.getItem('name')
  document.querySelector('.username').innerHTML = user
}


function logout() {
  const logout = document.querySelector('#logout')
  logout.addEventListener('click', function () {
    // 清空用户名
    localStorage.removeItem('name')
    // 清空token
    localStorage.removeItem('token')
    // 页面跳转
    setTimeout(() => {
      location.href = 'login.html'
    }, 1000)
  })
}

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 获取token
  const token = localStorage.getItem('token')
  // 判断token
  if (token) {
    // 统一设置token
    config.headers.Authorization = token
  }
  return config

}, function (error) {
  // 请求错误做什么
  return Promise.reject(error)
}
)

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  // response是后台响应的数据
  // console.log('response', response.data);

  return response.data
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  // console.dir(error);
  // 判断token是否失效(超时/篡改),失效返回401状态码
  if (error.response.status === 401) {
    // 清除用户名和token
    localStorage.removeItem('user')
    localStorage.removeItem('token')
    // 跳转登录页
    setTimeout(() => {
      location.href = 'login.html'
    }, 1000);
  }



  return Promise.reject(error);
});